﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Software41.Tracking.Model;

namespace Software41.Tracking.Data
{
    public interface IProcessTraceInfoRepository
    {
        List<ProcessTraceInfo> QueryForProcess(Expression<Func<ProcessTraceInfo, bool>> filter = null,
            Func<IQueryable<ProcessTraceInfo>, IOrderedQueryable<ProcessTraceInfo>> orderBy = null,
            params Expression<Func<ProcessTraceInfo, object>>[] includes);

        ProcessTraceInfo GetProcessInfo(string processInfoActivityID);
        StepInfo GetStepInfo(string stepInfoActivityID);
        ActionInfo GetActionInfo(string actionInfoActivityID);
        ExceptionDetail GetExceptionDetail(string exceptionInfoActivityID);
        DocReferenceData GetDocReferenceDataDetails(DocReferenceData docReferenceData);


    }
}
